//: io/ChannelCopy.java
package com.dozy.learn.io;

// Copying a file using channels and buffers
// {Args: ChannelCopy.java test.txt}
import java.nio.*;
import java.nio.channels.*;
import java.io.*;

public class ChannelCopy {
    private static final int BSIZE = 1024;

    @SuppressWarnings("resource")
    public static void main(String[] args) throws Exception {
/*        if (args.length != 2) {
            System.out.println("arguments: sourcefile destfile");
            System.exit(1);
        }*/
        String[] argx = { "src\\com\\dozy\\learn\\io\\ChannelCopy.java",
                "bin\\test.txt" };
        FileChannel in = new FileInputStream(
                argx[0]).getChannel(), out = new FileOutputStream(
                argx[1]).getChannel();
        ByteBuffer buffer = ByteBuffer.allocate(BSIZE);
        while (in.read(buffer) != -1) {
            buffer.flip(); // Prepare for writing
            out.write(buffer);
            buffer.clear(); // Prepare for reading
        }
    }
} // /:~
